home *** CD-ROM | disk | FTP | other *** search
/ Business & Presentations / Business and Presentations - Volume 1 (1995)(Sideface)(NL).iso / hputils / bitfnt38 / bitfnt38.doc next >
Text File  |  1988-06-01  |  25KB  |  482 lines

  1. BITFNT38, Copyright 1988 by Bruce J. Patin. All rights reserved.
  2. This DOC file and the associated EXE and BFC files may be freely
  3. distributed.
  4.  
  5. Bitfont is a program which can be used to design or modify fonts of
  6. bit-mapped characters.  Using a configuration file as a template,
  7. font files for a wide variety of printers and graphics programs
  8. can be read in, modified by Bitfont, then written out to a new file.
  9. Bitfont itself has graphics capabilities to display characters
  10. with either discrete or overlapping dots, and there are many
  11. menu-driven functions which can be used to quickly modify entire
  12. fonts.
  13.  
  14. A configuration file must be created for each font file format,
  15. using what is actually a simple programming language.
  16. The rules of this programming language are given later on in this
  17. document.  A sample configuration file is HPLAJET2.BFC,
  18. which can be used to read and write fonts compatible with the
  19. Hewlett Packard LaserJet II printer.
  20. Another sample file is NLQDRAFT.BFC, which can be used with the
  21. NLQ printer, which is supposed to be compatible with the Epson FX-85.
  22.  
  23. It is possible to design and save individual characters without
  24. a configuration file, by writing the bit pattern to the file in hex
  25. or in the form of a matrix of 1's and 0's or X's and spaces.
  26. The desired form can be selected from the Save or Load displays.
  27.  
  28. To execute Bitfont, simply type in the name of the EXE file, BITFNT38.EXE.
  29. If there is a configuration file by the name of BITFONT.BFC in the
  30. current directory, this will automatically be loaded.
  31. If not, you will need to select CF on the Parameter Display to
  32. specify and load in a configuration file in order to read and write
  33. fonts.  When you select a configuration file to be loaded, BITFNT38
  34. will read it in, condense it, write it to the current directory as
  35. BITFONT.BFC, and then reread it from BITFONT.BFC in its condensed form.
  36. This makes future invocations of BITFNT38 faster.
  37.  
  38. The menus of the Bitfont program should be self-explanatory, with
  39. possibly a little experimentation.  Mouse support for the design screen
  40. has not yet been implemented, but should be unnecessary for most
  41. purposes, since the cursor keys and surrounding keys and menu commands
  42. are very effectively implemented for the purpose of designing characters.
  43.  
  44. Bitfont has been written in Turbo Pascal 4.0.
  45. The source code is available for $120.
  46. For answers to any questions or a copy of the source code, send a note
  47. to:
  48.  
  49. Bruce J. Patin
  50. 4225 N. Henderson Drive #101
  51. Arlington, VA 22203
  52.  
  53. Sorry, I do not accept phone calls.
  54.  
  55. *************************************************************************
  56.  
  57. I/O Configuration File:
  58.  
  59.     This file is composed of entries for each field of the font file.
  60.     Each configuration entry is composed of one or more subfields,
  61.     separated by commas. The configuration entry is ended by a semicolon.
  62.     The entire set of configuration entries is ended by a period.
  63.     There may be more than one set of configurations in a file.
  64.     They are identified by an ID and Name in the Start Config entry.
  65.  
  66.     The first subfield is the Type and optional Modifier.
  67.     Other possible subfields are Termination, Termchar, Length, Start,
  68.     Varid, Name, String, all explained as follows.
  69.     Note that the format of an entry may vary, depending on
  70.     whether it is used for input (load) or output (save).
  71.  
  72.     Comments and whitespace may be included anywhere in the
  73.     configuration file.  Comments must be enclosed in curly brackets.
  74.     If the very first character is an asterisk (*), then it is
  75.     assumed that the whitespace and comments are removed (compacted).
  76.     When a configuration file is first loaded in, it is automatically
  77.     saved in bitfont.bfc in the compacted form, so that next time
  78.     bitfont is started, the most recent configuration loaded will be
  79.     quickly and efficiently loaded automatically.
  80.  
  81. *************************************************************************
  82.  
  83. The format of each entry in the configuration file is given as follows
  84. in parentheses, according to the type of entry.
  85. (Do not include the parentheses when actually coding the configuration.)
  86. In general, the entry type is indicated by the first character in the
  87. entry.
  88.  
  89. Section Types: (in the order in which they should be used)
  90.   N - start configuration set initialization. (N:Name;)
  91.       Only assignments (types A,T,X) may occur between N and E.
  92.   E - end initialization section.
  93.   KI - start input font header.
  94.   EI - end input font header.
  95.   L1 - label 1 (see below for labels) to indicate start of character.
  96.   ESL - end character search, character loaded.
  97.         (ignored if loading entire font)
  98.   KT - start input font trailer.
  99.   ET - end input font trailer.
  100.   KS - start character search program, to search for an input character.
  101.        This is needed for loading in a selected character only.
  102.        Routine here should contain a jump to L1.
  103.   ESU - end character search program (unsuccessful search)
  104.   KO - start output font header.
  105.   EO - end output font header.
  106.   KC - start output character, for when character is being appended.
  107.   EC - end output character.
  108.   KZ - start output font trailer.
  109.   EZ - end output font trailer.
  110.   KP - start download.
  111.   EP - stop download.
  112.   . - a period after the last semicolon ends the configuration set.
  113.  
  114. Diagnostic types:
  115.   #  -  (#:Varid,Message;) sends Message and value of Varid to terminal.
  116.   #R -  Same as #, but waits for you to hit return.
  117.   #A -  Sends Message and waits for you to enter a value to assign to Varid.
  118.   $  -  Same as #, except any value is displayed and entered in hex.
  119.         (the value is limited to FF, one byte's worth)
  120.  
  121. Branching types:
  122.   Zn -  Set length limit.
  123.        (Zn:Length;) Length is a value expression.
  124.        After each configuration entry, the number of bytes read from
  125.        the font input file is checked, and a skip to label n is done
  126.        if the number of bytes transferred from the font file, after Zn,
  127.        is equal to or greater than Length, at which time the length
  128.        limitation is reset.
  129.   R  - Reset length limit;
  130.   Ln - label n. n is a decimal number, maximum value of 99.
  131.   Jn - Jump on condition to label n.
  132.        n may be a value expression, allowing for a "computed goto".
  133.        (Jn:Value1,Operator,Value2;)
  134.        Operator may be:
  135.        GT - Greater than.
  136.        LT - Less than.
  137.        EQ - Equal to.
  138.        GE - Greater than or equal to.
  139.        LE - Less than or equal to.
  140.        NE - Not equal to.
  141.  
  142. Assignment types:
  143.   A - Assignment only. (A:Varid=Value,Name;)
  144.       A maximum of 128 variables, including predetermined can be assigned.
  145.   T - Assignment of a string of text characters to a variable.
  146.       There may be a maximum of 8 of these.
  147.       The Text must be enclosed in double quotes.
  148.       (T:Varid=Text,Name;)
  149.   X - Assignment of an optional variable for which each character
  150.       descriptor has its own value. (X:Varid=Value,Name;)
  151.       There may be a maximum of 6 of these, none of which may be strings.
  152.       All variables of this type must be assigned with X before they
  153.       can be used elsewhere.
  154.   P - Position input font file at Value position. (P:Value;)
  155.  
  156.   C - Code select (C;); used only during save operations.
  157.       This selects the variables and data for the character having
  158.       a code equal to the previously set value of CC.
  159.       If CC is not a valid code, then the next higher code is selected.
  160.       If there is no valid higher code, CC is set to 0.
  161.  
  162.   G - the character bit data string. (G:Start,Length;)
  163.       Start and Length are optional Value expressions.
  164.       The default is the entire string, of length calculated
  165.       using the currently assigned width, height and data format.
  166.       For counting purposes, the first data byte is byte 0.
  167.       'G' may have an optional modifier 'H', 'D' or 'B' to indicate that
  168.       bytes are expressed in hex, decimal, or binary, and the additional
  169.       submodifier 'S' may be used to indicate that the hi and lo order
  170.       bytes of each pair of bytes is to be swapped.
  171.  
  172.